<?php
	require_once(realpath(dirname(__FILE__).'/vo/Pregunta.php'));
	
	class PreguntaService{
		
		function __construct() { } 
		 
		function getPreguntasByModulo($modulo){
			
			//Parámetros de conexión a la base de datos
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			/**
			 * query que retorna las preguntas de la tabla pregunta según el módulo indicado
			 * como parámetro del método
			 **/
			$query = "SELECT * FROM pregunta WHERE pregunta.modulo LIKE '".$modulo."' AND es_pregunta = TRUE";
			
			//Ejecución del query
			$result = mysql_query($query);
			
			$i = 0;
			//Se recorre el arreglo de resultados
			while($row = mysql_fetch_object($result)){
				//error_log("Primera pregunta del módulo ".$modulo." de base de datos -> ".$row->id_pregunta,0);
				$preguntaAux = new Pregunta();
				$preguntaAux->idPregunta = $row->id_pregunta;
				$preguntaAux->numero = $row->numero;
				$preguntaAux->modulo = $row->modulo;
				$preguntaAux->nombre = $row->nombre;
				$preguntaAux->enunciadoOpcion = $row->enunciado_opcion;
				$preguntaAux->esPregunta = $row->es_pregunta;
				$preguntaAux->tipoCampo = $row->tipo_campo;
				$preguntaAux->informacion = $row->informacion;
				$preguntas[$i] = $preguntaAux;
				//error_log("id pregunta ".$i." del módulo ".$modulo." de base de datos -> ".$preguntaAux->idPregunta,0);
				$i ++;
			}
			//error_log("Primera pregunta del módulo ".$modulo." de base de datos -> ".$preguntas[0]->idPregunta,0);
			//error_log("Segunda pregunta del módulo ".$modulo." de base de datos -> ".$preguntas[1]->idPregunta,0);
			
			//retorna el arreglo con los objetos hallados
			return($preguntas);
		
		}
		
		/**
		 * 
		 * Función encargada de retornar las preguntas según el número de entrada
		 * @param String $numero, entrada para buscar en la tabla pregunta aquellas
		 * que comiencen con este parámetro y finalicen con cualquier cosa 
		 */
		function getPreguntasByNumeroAprox($numero){
			
			//Parámetros de conexión a la base de datos
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			/**
			 * query que retorna las preguntas de la tabla pregunta según el módulo indicado
			 * como parámetro del método
			 **/
			$query = "SELECT * FROM pregunta WHERE pregunta.numero LIKE '".$numero."%' AND es_pregunta = TRUE";
			error_log("SQL: ".$query);
			//Ejecución del query
			$result = mysql_query($query);
			
			$i = 0;
			//Se recorre el arreglo de resultados
			while($row = mysql_fetch_object($result)){
				//error_log("Primera pregunta del módulo ".$modulo." de base de datos -> ".$row->id_pregunta,0);
				$preguntaAux = new Pregunta();
				$preguntaAux->idPregunta = $row->id_pregunta;
				$preguntaAux->numero = $row->numero;
				$preguntaAux->modulo = $row->modulo;
				$preguntaAux->nombre = $row->nombre;
				$preguntaAux->enunciadoOpcion = $row->enunciado_opcion;
				$preguntaAux->esPregunta = $row->es_pregunta;
				$preguntaAux->tipoCampo = $row->tipo_campo;
				$preguntaAux->informacion = $row->informacion;
				$preguntas[$i] = $preguntaAux;
				//error_log("id pregunta ".$i." del módulo ".$modulo." de base de datos -> ".$preguntaAux->idPregunta,0);
				$i ++;
			}
			error_log("Primera pregunta del módulo ".$modulo." de base de datos -> ".$preguntas[0]->idPregunta,0);
			//error_log("Segunda pregunta del módulo ".$modulo." de base de datos -> ".$preguntas[1]->idPregunta,0);
			
			//retorna el arreglo con los objetos hallados
			return($preguntas);
		
		}
		
		/**
		 * 
		 * Función encargada de retornar una pregunta según el número de entrada
		 * @param String $numero, entrada para buscar en la tabla pregunta
		 */
		function getPreguntaByNumero($numero){
			
			//Parámetros de conexión a la base de datos
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			/**
			 * query que retorna las preguntas de la tabla pregunta según el módulo indicado
			 * como parámetro del método
			 **/
			$query = "SELECT * FROM pregunta WHERE pregunta.numero LIKE '".$numero."' order by id_pregunta ASC limit 1";
			error_log("SQL: ".$query);
			//Ejecución del query
			$result = mysql_query($query);
			
			//Resultado
			$row = mysql_fetch_object($result);
			$preguntaAux = new Pregunta();
			$preguntaAux->idPregunta = $row->id_pregunta;
			$preguntaAux->numero = $row->numero;
			$preguntaAux->modulo = $row->modulo;
			$preguntaAux->nombre = $row->nombre;
			$preguntaAux->enunciadoOpcion = $row->enunciado_opcion;
			$preguntaAux->esPregunta = $row->es_pregunta;
			$preguntaAux->tipoCampo = $row->tipo_campo;
			$preguntaAux->informacion = $row->informacion;
			
			//retorna el arreglo con los objetos hallados
			return($preguntaAux);
		
		}
		
		function answerQuestions($respuestas){
			error_log("answerQuestions, num respuestas: ".count($respuestas));
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			foreach($respuestas as $respuesta){
				error_log("Respuesta: ".$respuesta["respuesta"]);
				$query = "DELETE FROM respuesta WHERE pregunta='".$respuesta["pregunta"].
				"' AND empresa = '".$respuesta["empresa"]."'";
				error_log("SQL: ".$query);
				mysql_query($query);
				
				$query = "INSERT INTO respuesta (pregunta,empresa,respuesta) VALUES ('".$respuesta["pregunta"].
				"','".$respuesta["empresa"]."',".$respuesta["respuesta"].")";
				
				/*$query = "INSERT INTO respuesta (pregunta,empresa,respuesta) VALUES ('".$respuesta["pregunta"].
				"','".$respuesta["empresa"]."',".$respuesta["respuesta"].") ON DUPLICATE KEY UPDATE pregunta='".
				$respuesta["pregunta"]."', empresa='".$respuesta["empresa"]."', respuesta=".$respuesta["respuesta"];*/
				
				error_log("SQL: ".$query);
				mysql_query($query);
			}
		}
		
		function saveEmpresa($empresa){
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			$id = $this->getEmpresaId($empresa);
			error_log("id: '".$id."'");
			
			if ($id == ''){
				$query = "INSERT INTO empresa (nombre,nit,representante,cargo_representante,direccion,ciudad_domicilio,ciudad,antiguedad,persona_contacto,tel_fijo,tel_movil,correo,website)"
				."VALUES ('".$empresa["nombre"]."','".$empresa["nit"]."','".$empresa["representante"]."','".$empresa["cargoRepresentante"]."','".
					$empresa["direccion"]."','".$empresa["ciudadDomicilio"]."','".$empresa["ciudad"]."','".$empresa["antiguedad"]."','".$empresa["personaContacto"]."','".$empresa["telFijo"]."','".
					$empresa["telMovil"]."','".$empresa["correo"]."','".$empresa["website"]."')";
					error_log("SQL: ".$query);
				mysql_query($query);
				$id = $this->getEmpresaId($empresa);
			}
			
			return $id; 
		}
		
		function getEmpresaId($empresa){
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			$query = "SELECT id_empresa from empresa where nombre='".$empresa["nombre"]."' AND nit='".$empresa["nit"].
			"' AND representante='".$empresa["representante"]."' AND cargo_representante='".$empresa["cargoRepresentante"].
			"' AND direccion='".$empresa["direccion"]."' AND ciudad_domicilio='".$empresa["ciudadDomicilio"].
			"' AND ciudad=".$empresa["ciudad"]." AND antiguedad='".$empresa["antiguedad"].
			"' AND persona_contacto='".$empresa["personaContacto"]."' AND tel_fijo='".$empresa["telFijo"].
			"' AND tel_movil='".$empresa["telMovil"]."' AND correo='".$empresa["correo"]."' AND website='".$empresa["website"]."'";
			error_log("SQL: ".$query);
			$result=mysql_query($query);
			return mysql_fetch_object($result)->id_empresa;
		}
		
		function getEmpresas(){
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			$query = "SELECT * FROM empresa";
			error_log("SQL: ".$query);
			$result = mysql_query($query);
			
			$i = 0;
			//Se recorre el arreglo de resultados
			while($row = mysql_fetch_object($result)){
				$preguntaAux = new Pregunta();
				$preguntaAux->idPregunta = $row->id_pregunta;
				$preguntaAux->numero = $row->numero;
				$preguntaAux->modulo = $row->modulo;
				$preguntaAux->nombre = $row->nombre;
				$preguntaAux->enunciadoOpcion = $row->enunciado_opcion;
				$preguntaAux->esPregunta = $row->es_pregunta;
				$preguntaAux->tipoCampo = $row->tipo_campo;
				$preguntaAux->informacion = $row->informacion;
				$preguntas[$i] = $preguntaAux;
				//error_log("id pregunta ".$i." del módulo ".$modulo." de base de datos -> ".$preguntaAux->idPregunta,0);
				$i ++;
			}
		}
		
		function getNoticias(){
		$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			$query = "SELECT * FROM noticia WHERE numero = 1 OR numero = 2";
			error_log("SQL: ".$query);
			$result = mysql_query($query);
			
			$i = 0;
			//Se recorre el arreglo de resultados
			while($row = mysql_fetch_object($result)){
				$noticiaAux = new Noticia();
				$noticiaAux->idNoticia = $row->id_noticia;
				$noticiaAux->numero = $row->numero;
				$noticiaAux->titulo = $row->titulo;
				$noticiaAux->cuerpo = $row->cuerpo;
				$noticias[$i] = $noticiaAux;
				//error_log("id pregunta ".$i." del módulo ".$modulo." de base de datos -> ".$preguntaAux->idPregunta,0);
				$i ++;
			}
			return noticias;
		}
		
		function addNoticia($noticia){
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			$query = "UPDATE noticia SET numero = 0 WHERE numero = ".$noticia->numero;
			mysql_query($query);
			$query = "INSERT INTO noticia (titulo,cuerpo,numero)"
					."VALUES (".$noticia->titulo.",".$noticia->cuerpo.",".$noticia->numero.")";
			error_log("SQL: ".$query);
			return mysql_query($query);
		}
		
		/**
		 * 
		 * Función usada para obtener las preguntas que se mostrarán en las estadísticas
		 */
		function getStatisticsQuestions(){
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			$query = "SELECT * FROM camcom.pregunta p WHERE p.es_pregunta=true";
			error_log("SQL: ".$query);
			$result = mysql_query($query);
			
			$i = 0;
			//Se recorre el arreglo de resultados
			while($row = mysql_fetch_object($result)){
				//error_log("Primera pregunta del módulo ".$modulo." de base de datos -> ".$row->id_pregunta,0);
				$preguntaAux = new Pregunta();
				$preguntaAux->idPregunta = $row->id_pregunta;
				$preguntaAux->numero = $row->numero;
				$preguntaAux->modulo = $row->modulo;
				$preguntaAux->nombre = $row->nombre;
				$preguntaAux->enunciadoOpcion = $row->enunciado_opcion;
				$preguntaAux->esPregunta = $row->es_pregunta;
				$preguntaAux->tipoCampo = $row->tipo_campo;
				$preguntaAux->informacion = $row->informacion;
				$preguntas[$i] = $preguntaAux;
				//error_log("id pregunta ".$i." del módulo ".$modulo." de base de datos -> ".$preguntaAux->idPregunta,0);
				$i ++;
			}
			
			//retorna el arreglo con los objetos hallados
			return($preguntas);
		}
		
		function getAnswersByQuestion($idPregunta){
			//Parámetros de conexión a la base de datos
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			/**
			 * query que retorna las respuestas asociadas a la pregunta que recibe como
			 * parámetro
			 **/
			$query = "SELECT * FROM respuesta WHERE pregunta=".$idPregunta;
			error_log("SQL: ".$query);
			//Ejecución del query
			$result = mysql_query($query);
			
			$i = 0;
			//Se recorre el arreglo de resultados
			while($row = mysql_fetch_object($result)){
				$respuestaAux = new Respuesta();
				$respuestaAux->idRespuesta = $row->id_pregunta;
				$respuestaAux->pregunta = $row->pregunta;
				$respuestaAux->empresa = $row->empresa;
				$respuestaAux->respuesta = $row->respuesta;
				$respuestas[$i] = $respuestaAux;
				$i ++;
			}
			
			//retorna el arreglo con los objetos hallados
			return($respuestas);
		}
		
		/**
		 *Función que retorna el nombre de los módulos 
		 */
		function getNomNumModulos(){
			//Parámetros de conexión a la base de datos
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			/**
			 * query que retorna los nombres de los módulos
			 **/
			$query = "SELECT numero, nombre FROM camcom.pregunta p WHERE p.es_pregunta=false AND p.nombre != '' AND informacion != '' AND numero != 1";
			error_log("SQL: ".$query);
			//Ejecución del query
			$result = mysql_query($query);
			
			$i = 0;
			//Se recorre el arreglo de resultados
			while($row = mysql_fetch_object($result)){
				$respuestas[$i] = $row;
				$i ++;
			}
			
			//retorna el arreglo con los objetos hallados
			return($respuestas);
		}
		
		function getRespuestasByModulo($modulo){
			//Parámetros de conexión a la base de datos
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			/**
			 * query que retorna los nombres de los módulos
			 **/
			$query = "SELECT id_respuesta, pregunta, empresa, respuesta FROM camcom.respuesta r, camcom.pregunta p WHERE r.pregunta = p.id_pregunta AND p.numero like '".$modulo.".%'";
			error_log("SQL: ".$query);
			//Ejecución del query
			$result = mysql_query($query);
			
			$i = 0;
			//Se recorre el arreglo de resultados
			while($row = mysql_fetch_object($result)){
				$respuestas[$i] = $row;
				$i ++;
			}
			
			//retorna el arreglo con los objetos hallados
			return($respuestas);
		}
		
		/**
		 * 
		 * Función encargada de retornar las preguntas según el número de entrada
		 * @param String $numero, entrada para buscar en la tabla pregunta aquellas
		 * que comiencen con este parámetro y finalicen con cualquier cosa 
		 */
		function getPreguntasByMod($modulo){
			
			//Parámetros de conexión a la base de datos
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			/**
			 * query que retorna las preguntas de la tabla pregunta según el módulo indicado
			 * como parámetro del método
			 **/
			$query = "SELECT * FROM pregunta WHERE pregunta.numero LIKE '".$modulo.".%' AND es_pregunta = TRUE";
			error_log("SQL: ".$query);
			//Ejecución del query
			$result = mysql_query($query);
			
			$i = 0;
			//Se recorre el arreglo de resultados
			while($row = mysql_fetch_object($result)){
				//error_log("Primera pregunta del módulo ".$modulo." de base de datos -> ".$row->id_pregunta,0);
				$preguntaAux = new Pregunta();
				$preguntaAux->idPregunta = $row->id_pregunta;
				$preguntaAux->numero = $row->numero;
				$preguntaAux->modulo = $row->modulo;
				$preguntaAux->nombre = $row->nombre;
				$preguntaAux->enunciadoOpcion = $row->enunciado_opcion;
				$preguntaAux->esPregunta = $row->es_pregunta;
				$preguntaAux->tipoCampo = $row->tipo_campo;
				$preguntaAux->informacion = $row->informacion;
				$preguntas[$i] = $preguntaAux;
				//error_log("id pregunta ".$i." del módulo ".$modulo." de base de datos -> ".$preguntaAux->idPregunta,0);
				$i ++;
			}
			error_log("Primera pregunta del módulo ".$modulo." de base de datos -> ".$preguntas[0]->idPregunta,0);
			//error_log("Segunda pregunta del módulo ".$modulo." de base de datos -> ".$preguntas[1]->idPregunta,0);
			
			//retorna el arreglo con los objetos hallados
			return($preguntas);
		
		}
		
		function getCiudades(){
			//Parámetros de conexión a la base de datos
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			/**
			 * query que retorna las ciudades diferentes a Boyacá -> id=1000
			 **/
			$query = "SELECT * FROM ciudad WHERE id_ciudad<1000";
			error_log("SQL: ".$query);
			//Ejecución del query
			$result = mysql_query($query);
			
			$i = 0;
			//Se recorre el arreglo de resultados
			while($row = mysql_fetch_object($result)){
				$respuestas[$i] = $row;
				$i ++;
			}
			
			//retorna el arreglo con los objetos hallados
			return($respuestas);
		}
		
		function logIn($nombre,$password){
			//Parámetros de conexión a la base de datos
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			/**
			 * query que retorna las ciudades diferentes a Boyacá -> id=1000
			 **/
			$query = "SELECT * FROM usuario WHERE nombre='".$nombre."' AND password='".$password."'";
			error_log("SQL: ".$query);
			//Ejecución del query
			$result = mysql_query($query);
			return mysql_fetch_object($result);
		}
		
		function saveNew($new){
			//Parámetros de conexión a la base de datos
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			/**
			 * query que inserta la noticia
			 **/
			$query = "INSERT INTO noticia(cuerpo) VALUES('".$new."')";
			error_log("SQL: ".$query);
			return mysql_query($query);
		}
		
		function getNews(){
			//Parámetros de conexión a la base de datos
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			/**
			 * query que retorna las ciudades diferentes a Boyacá -> id=1000
			 **/
			$query = "SELECT * FROM noticia";
			error_log("SQL: ".$query);
			//Ejecución del query
			$result = mysql_query($query);
			
			$i = 0;
			//Se recorre el arreglo de resultados
			while($row = mysql_fetch_object($result)){
				$respuestas[$i] = $row;
				$i ++;
			}
			
			//retorna el arreglo con los objetos hallados
			return($respuestas);
		}
		
		function setPrincipal($idNoticia){
			//Parámetros de conexión a la base de datos
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			/**
			 * query que retorna las ciudades diferentes a Boyacá -> id=1000
			 **/
			$query = "UPDATE noticia SET primaria = false WHERE primaria = true";
			error_log("SQL: ".$query);
			//Ejecución del query
			mysql_query($query);
			
			$query = "UPDATE noticia SET primaria = true WHERE id_noticia = '".$idNoticia."'";
			error_log("SQL: ".$query);
			//Ejecución del query
			mysql_query($query);
			return mysql_query($query);
		}
		
		function setSecundaria($idNoticia){
			//Parámetros de conexión a la base de datos
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			/**
			 * query que retorna las ciudades diferentes a Boyacá -> id=1000
			 **/
			$query = "UPDATE noticia SET secundaria = false WHERE secundaria = true";
			error_log("SQL: ".$query);
			//Ejecución del query
			mysql_query($query);
			
			$query = "UPDATE noticia SET secundaria = true WHERE id_noticia = '".$idNoticia."'";
			error_log("SQL: ".$query);
			//Ejecución del query
			mysql_query($query);
			return mysql_query($query);
		}
		
		function deleteNew($idNoticia){
			//Parámetros de conexión a la base de datos
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			/**
			 * query que retorna las ciudades diferentes a Boyacá -> id=1000
			 **/
			$query = "DELETE FROM noticia WHERE id_noticia = '".$idNoticia."'";
			error_log("SQL: ".$query);
			//Ejecución del query
			return mysql_query($query);
		}
		
		function getNoticiaPrincipal(){
			//Parámetros de conexión a la base de datos
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			/**
			 * query que retorna las ciudades diferentes a Boyacá -> id=1000
			 **/
			$query = "SELECT * FROM noticia WHERE primaria = true";
			error_log("SQL: ".$query);
			//Ejecución del query
			return mysql_fetch_object(mysql_query($query));
		}
		
		function getNoticiaSecundaria(){
			//Parámetros de conexión a la base de datos
			$mysql = mysql_connect("localhost", "root", "root");
			mysql_query('SET NAMES utf8');
			mysql_select_db( "camcom" );
			
			/**
			 * query que retorna las ciudades diferentes a Boyacá -> id=1000
			 **/
			$query = "SELECT * FROM noticia WHERE secundaria = true";
			error_log("SQL: ".$query);
			//Ejecución del query
			return mysql_fetch_object(mysql_query($query));
		}
	}
?>
